package za.co.smartmi.dao;

import za.co.smartmi.model.Policyline;
import za.co.smartmi.model.PolicylinePk;
import za.co.smartmi.dao.exceptions.PolicylineDaoException;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import za.co.smartmi.dao.support.JdbcDao;

public interface PolicylineDao extends JdbcDao
{
	/**
	 * Method 'insert'
	 * 
	 * @param dto
	 * @return PolicylinePk
	 */
	public PolicylinePk insert(Policyline dto);

	/** 
	 * Updates a single row in the policyline table.
	 */
	public void update(PolicylinePk pk, Policyline dto) throws PolicylineDaoException;

	/** 
	 * Deletes a single row in the policyline table.
	 */
	public void delete(PolicylinePk pk) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'policyid = :policyid AND clientid = :clientid AND productid = :productid'.
	 */
	public Policyline findByPrimaryKey(Integer policyid, Integer clientid, Integer productid) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria ''.
	 */
	public List<Policyline> findAll() throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'policylineid = :policylineid'.
	 */
	public List<Policyline> findWherePolicylineidEquals(Integer policylineid) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'premium = :premium'.
	 */
	public List<Policyline> findWherePremiumEquals(BigDecimal premium) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'status = :status'.
	 */
	public List<Policyline> findWhereStatusEquals(String status) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'startdate = :startdate'.
	 */
	public List<Policyline> findWhereStartdateEquals(Date startdate) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'enddate = :enddate'.
	 */
	public List<Policyline> findWhereEnddateEquals(Date enddate) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'csys = :csys'.
	 */
	public List<Policyline> findWhereCsysEquals(String csys) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'cdate = :cdate'.
	 */
	public List<Policyline> findWhereCdateEquals(Date cdate) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'usys = :usys'.
	 */
	public List<Policyline> findWhereUsysEquals(String usys) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'udate = :udate'.
	 */
	public List<Policyline> findWhereUdateEquals(Date udate) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'policyid = :policyid'.
	 */
	public List<Policyline> findWherePolicyidEquals(Integer policyid) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'clientid = :clientid'.
	 */
	public List<Policyline> findWhereClientidEquals(Integer clientid) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'productid = :productid'.
	 */
	public List<Policyline> findWhereProductidEquals(Integer productid) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'beneficiaryid = :beneficiaryid'.
	 */
	public List<Policyline> findWhereBeneficiaryidEquals(Integer beneficiaryid) throws PolicylineDaoException;

	/** 
	 * Returns all rows from the policyline table that match the criteria 'repid = :repid'.
	 */
	public List<Policyline> findWhereRepidEquals(Integer repid) throws PolicylineDaoException;

	/** 
	 * Returns the rows from the policyline table that matches the specified primary-key value.
	 */
	public Policyline findByPrimaryKey(PolicylinePk pk) throws PolicylineDaoException;

}
